Freescale's Community Yocto BSP

==apt install prerequisites ==
 host$ sudo apt-get install curl gawk wget git diffstat unzip texinfo gcc-multilib build-essential chrpath socat libsdl1.2-dev xterm diffstat texi2html texinfo subversion chrpath gettext vim build-essential git

==Using a Proxy==
 export https_proxy=http://192.168.8.25:1077
 export http_proxy=http://192.168.8.25:1077


to use http proxy for git://, create your own 'gitproxy' file, and:

 git config --global core.gitproxy gitproxy


http://www.emilsit.net/blog/archives/how-to-use-the-git-protocol-through-a-http-connect-proxy/


if remote proxy is squid3, you need to allow 9418 access:
 acl Safe_ports port 9418 # git
 acl SSL_ports port 9418 # git ssl

==Get Repository==

To get the BSP you need to have `repo` installed.

Install the `repo` utility: (only need to do this once):

 mkdir ~/bin
 curl http://commondatastorage.googleapis.com/git-repo-downloads/repo  > ~/bin/repo
 chmod a+x ~/bin/repo
 PATH=${PATH}:~/bin

OR #ubuntu 16.04:

 sudo apt-get install repo 

FOR directions on setting up the AGL demo, see the README in neta-nxp-agl.

Download the BSP Yocto Project Environment into your directory:

 mkdir fsl-arm-yocto-bsp
 cd fsl-arm-yocto-bsp
 repo init -u git://git.freescale.com/imx/fsl-arm-yocto-bsp.git -b imx-4.1-krogoth
 repo sync

Note this downloads the latest releases and patches on top of the 4.1.15-2.0.0 ga release.

If the GA release was downloaded before just do repo sync to fetch latest updates.

For errors with repo init, remove the .repo directory and run repo init again.

To download only the 4.1.15-2.0.0 release use the release manifest in the repo init command as follows:
 repo init -u git://git.freescale.com/imx/fsl-arm-yocto-bsp.git -b imx-4.1-krogoth -m imx-4.1.15-2.0.0.xml
 repo sync

See ChangeLog for description of patch releases and tags for each update.

==Setup Environment==

Setup for a particular graphical backend.

The examples uses imx6qsabresd MACHINE but substitute with whatever you are using:

Setup for X11.
 MACHINE=imx6qsabresd DISTRO=fsl-imx-x11 source ./fsl-setup-release.sh -b bld-x11

Setup for Wayland.
 MACHINE=imx6qsabresd DISTRO=fsl-imx-wayland source ./fsl-setup-release.sh -b bld-wayland

Setup for Wayland and X11.
 MACHINE=imx6qsabresd DISTRO=fsl-imx-xwayland source ./fsl-setup-release.sh -b bld-xwayland

Setup for Frame Buffer.
 MACHINE=imx6qsabresd DISTRO=fsl-imx-fb source ./fsl-setup-release.sh -b bld-fb

You can replace MACHINE=<platform> with the platform you want, e.g. imx6solosabresd, imx6ulevk, etc.

Note if the poky community distro is used then build breaks will happen with some components using
our meta-fsl-bsp-release layer.

Note DirectFB is not supported in 4.1.15 release.

==Build image==

 bitbake <image recipe>

Some image recipes:

fsl-image-gui - full image with demos and tests used for testing with graphics, no QT.

fsl-image-qt5 - fsl-image-gui with QT 5.5.

==Add custom package==

To add your custom package, you should write bb package file in specific directory, here is an example for a Qt5 application bb package file

<pre>
SUMMARY = "Luna Media Client"
DESCRIPTION = "Luna Media Client"
HOMEPAGE = "http://git.g77k.com"
LICENSE = "LGPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=d41d8cd98f00b204e9800998ecf8427e"

inherit qmake5

SRC_URI = "git://git@git.g77k.com/supercatexpert/luna-videostreamclient.git;branch=master;protocol=ssh"

SRCREV = "338920de3a9a5f80a126a1d095b91b01f6077409"

S = "${WORKDIR}/git"

DEPENDS = "qtbase qt-gstreamer qtwebkit socat luna-heartbeat"

do_install() {
    install -d ${D}${bindir}
    install -d ${D}${sysconfdir}/init.d
    install -m 0755 ${B}/lmc ${D}${bindir}
    install -m 0755 ${S}/lmc-daemon ${D}${sysconfdir}/init.d
    install -m 0755 ${S}/lmc-watchdog.sh ${D}${sysconfdir}
    update-rc.d -r ${D} lmc-daemon start 90 2 3 4 5 .
}

FILES_${PN}-dbg += "${bindir}/.debug"
</pre>

Add this to sources/meta-qt5/recipes-qt/examples/lmc_git.bb.

Then the package should be added into image bb file, you can edit official image bb file or copy it into new one. Here is an example to add lmc package into official Qt5 framebuffer image bb file, the file is in source/meta-fsl-bsp-release/imx/meta-fsl-qt5/recipes-fsl/images/fsl-image-fb-qt5.bb.

<pre>
DESCRIPTION = "Freescale Image Frame Buffer Image QT5"

require recipes-fsl/images/fsl-image-fb.bb

IMAGE_INSTALL += " \
    qtbase \
    qtbase-fonts \
    qtbase-plugins \
    qtbase-examples \
    cinematicexperience \
    tslib \
    icu \
    gstreamer \
    cairo \
    pango \
    fontconfig \
    freetype \
    lmc \
"

export IMAGE_BASENAME = "fsl-image-fb-qt5"
</pre>

Then use bitbake fsl-image-fb-qt5 to apply your changes.

For more details, you can view http://www.yoctoproject.org/docs/2.3/dev-manual/dev-manual.html as reference.

==Reference==
http://wiki.voipac.com/xwiki/bin/download/imx6+tinyrex/yocto/i.MX_Yocto_Project_User%27s_Guide_21.pdf